from django.shortcuts import render

# Create your views here.
def home():
    return

def dev_guide():
    return

def contact():
    return


def get_bizs_list(request):
     """
     获取业务列表
     """
     # 从环境配置获取 APP 信息，从 request 获取当前用户信息
     client = get_client_by_request(request)
     # 请求参数
     kwargs = {
         "fields": [
             "bk_biz_id",
             "bk_biz_name"
         ],
         # 社区版环境中业务数量有限，故不考虑分页情况
         "page": {
             "start": 0,
             "limit": 10,
             "sort": ""
         }
     }
     # 这里需要填写对应的组件 API 的入口地址
     result = client.cc.search_business(kwargs)
     return JsonResponse(result)

def get_sets_list(request):
     """
     根据业务 ID，查询业务下的集群列表
     """
     client = get_client_by_request(request)
     # 请求参数
     kwargs = {
         "bk_biz_id": request.GET.get('bk_biz_id'), # 从request.GET 中获取传递的查询参数
         "fields": ["bk_set_id", "bk_set_name", "bk_biz_id", "bk_created_at", "bk_supplier_account"],
     }
     result = client.cc.search_set(kwargs)
     return JsonResponse(result)

def get_modules_list(request):
     """
     根据业务 ID 和集群 ID，查询对应下辖的模块列表
     """
     client = get_client_by_request(request)
     # 构造请求参数
     kwargs = {
         "bk_biz_id": request.GET.get('bk_biz_id'),
         "bk_set_id": request.GET.get("bk_set_id"),
         "fields": ["bk_module_id", "bk_module_name", "bk_set_id", "bk_biz_id", "bk_created_at", "bk_supplier_account"],
     }
     result = client.cc.search_module(kwargs)
     return JsonResponse(result)

def get_hosts_list(request):
     """
     根据传递的查询条件，包括但不限于（业务 ID、集群 ID、模块 ID、主机 ID、主机
    维护人）
     查询主机列表
     """
     client = get_client_by_request(request)
     # 构造请求参数
     kwargs = {
         "bk_biz_id": request.GET.get("bk_biz_id"),
         # TODO 待优化项：学有余力的同学可尝试实现分页
         "page": {
         "start": 0,
         "limit": 100,
         },
         "fields": [
         "bk_host_id", # 主机 ID
         "bk_cloud_id", # 云区域 ID
         "bk_host_innerip", # 主机内网 IP
         "bk_os_type", # 操作系统类型
         "bk_mac", # 主机 MAC 地址
         "operator", # 操作人
         "bk_bak_operator" # 备份维护人
         ]
     }
     # 添加可选参数，包括但不限于主机 ID、集群 ID、模块 ID...
     if request.GET.get("bk_set_id"):
         # kwargs["bk_set_id"] = request.GET.get("bk_set_id")
         # 错误写法，注意数据结构数据结构与接口文档保持一致
         kwargs["bk_set_ids"] =[int(request.GET.get("bk_set_id"))] # 注意这里的数据结构，仔细阅读接口文档
     result = client.cc.list_biz_hosts(kwargs)
     return JsonResponse(result)

def get_host_detail(request):
     """
     根据主机 ID，查询主机详情信息
     """
     client = get_client_by_request(request)
     kwargs = {
     "bk_host_id": request.GET.get("bk_host_id")
     }
     result = client.cc.get_host_base_info(kwargs)
     return JsonResponse(result)